Nuprl Definition : R-compat 11,40

R-compat{i:l}
R-compat(AB)
== if Rplus?(A)
== ifthen R-compat{i:l}(Rplus-left(A); B R-compat{i:l}(Rplus-right(A); B)
== if Rplus?(B)
== ifthen R-compat{i:l}(A; Rplus-left(B))  R-compat{i:l}(A; Rplus-right(B))
== if Rnone?(A)
== ifthen True
== if Rnone?(B)
== ifthen True
== if eq_id(R-loc(A); R-loc(B))
== ifthen (fpf-compatible(Id; x.Type; id-deq; Rds(A); Rds(B))
== ifthen  fpf-compatible(Knd; x.Type; Kind-deq; Rda(A); Rda(B)))
== ifthen  if eq_bd(R-base-domain(A); R-base-domain(B))
== ifthen  then A = B
== ifthen  else R-frame-compat(AB R-frame-compat(BA R-discrete_compat(AB)
== ifthen  fi 
== else R-interface-compat(AB R-interface-compat(BA)
== fi 


clarification:

R-compat{i:l}
R-compat(AB)
== if Rplus?(A)
== ifthen R-compat{i:l}(Rplus-left(A); B R-compat{i:l}(Rplus-right(A); B)
== if Rplus?(B)
== ifthen R-compat{i:l}(A; Rplus-left(B))  R-compat{i:l}(A; Rplus-right(B))
== if Rnone?(A)
== ifthen True
== if Rnone?(B)
== ifthen True
== if eq_id(R-loc(A); R-loc(B))
== ifthen (fpf-compatible(Id; x.Type{i}; id-deq; Rds(A); Rds(B))
== ifthen  fpf-compatible(Knd; x.Type{i}; Kind-deq; Rda(A); Rda(B)))
== ifthen  if eq_bd(R-base-domain(A); R-base-domain(B))
== ifthen  then A = B  es_realizer{i:l}
== ifthen  else R-frame-compat(AB R-frame-compat(BA R-discrete_compat(AB)
== ifthen  fi 
== else R-interface-compat(AB R-interface-compat(BA)
== fi 
(recursive) 
latex


DefinitionsR-interface-compat(AB), P  Q, R-discrete_compat(AB), R-frame-compat(AB), es_realizer{i:l}, s = t, R-base-domain(R), eq_bd(pq), if b then t else f fi , Rda(R), Kind-deq, Type, Knd, fpf-compatible(Aa.B(a); eqfg), Rds(R), id-deq, Id, R-loc(R), eq_id(ab), True, Rnone?(x1), Rplus-right(x1), f(a), Rplus-left(x1), Rplus?(x1), x.A(x), Y
FDL editor aliasesR-compat

origin